/*
 * AbstractStrategy.h
 *
 *  Created on: 2010-01-13
 *      Author: adas
 */

#ifndef ABSTRACTSTRATEGY_H_
#define ABSTRACTSTRATEGY_H_

#include "Element.h"

#include <vector>

class AbstractStrategy
{
	protected:
		void calculatePoint(Element & el_, int populationCount_, double weightFactor_, const std::vector<Element *> &population_);

	public:
		virtual bool runStrategy(Element & el_, int populationCount_, double weightFactor_, const std::vector<Element *> &population_,
						const std::vector<Bound> &bounds_, const Element &oldEl_) = 0;
		virtual ~AbstractStrategy() {}
};

#endif /* ABSTRACTSTRATEGY_H_ */
